type gate =
    True
  | False
  | Prop of string
  | Not of gate
  | And of gate * gate
  | Or of gate * gate
  | Imp of gate * gate
  | Eq of gate * gate
  | Neq of gate * gate
type final_sets = int list
type transitions = (int * gate) list
type state = int * int * final_sets * transitions
type gba = int * int * state list
type transitions2 = (gate * string) list
type nba = (string * transitions2) list
